/**
 * 
 */
$(function() {

	// 初始化权限树组件
	$('#rightsTable').treegrid({
		// 定义列
		columns : [ [ {
			field : 'name',
			title : '名称',
			width : 20,
		}, {
			field : 'code',
			title : '编码',
			width : 20,
		}, {
			field : 'type',
			title : '类型',
			width : 20,
		}, {
			field : 'icon',
			title : '图标',
			width : 20,
		}, {
			field : 'url',
			title : '链接',
			// 百分比，总和不到100会有空白，必须配合fitColumns
			width : 20,
		} ] ],
		url : 'rights/getRightsByPid.action',
		// 必须
		treeField : 'name',
		// 必须
		idField : 'id',
		// 必须$.fn.treegrid.defaults.loadFilter（jqueryUtil.js）
		parentField : 'pid',
		// 行号
		rownumbers : true,
		// 列宽
		fitColumns : true,
		striped : true,
		animate : true,
		fit : true,
		border : false,
		// 添加顶部工具栏
		toolbar : '#rightsToolBar'
	});
	
	// 初始化添加框
	$('#addOrUpdateDlg').dialog({
		width : 370,
		height : 300,
		modal : true,
		closed : true,
		collapsible : false,
		minimizable : false,
		maximizable : false,
		onBeforeOpen : function() {
			initForm();
		},
		// 关闭后清空form中input的值
		onClose : function() {
			$('#addOrUpdateForm').form('reset');
		},
		buttons : '#dlgButt'
	});
	
	
	

	// 添加权限按钮click事件
	$('#addButt').bind('click', function() {
		// 获取treegrid内选中的条目
		var selectedRow = $('#rightsTable').treegrid('getSelected');
		console.log(selectedRow);
		if (selectedRow) {
			// 打开权限添加框
			$('#addOrUpdateDlg').dialog('open').dialog('setTitle', '添加');
			// 设置div的data-editType
			$('#addOrUpdateDlg').data('editType', 'add');
			$('#pidInput').combotree('setValue',selectedRow.id);
		} else {
			$('#addOrUpdateDlg').data('editType', 'add');
			$('#addOrUpdateDlg').dialog('open').dialog('setTitle', '添加');
		}
	});

	// 更新权限按钮click事件
	$('#updateButt').bind(
			'click',
			function() {
				// 获取treegrid内选中的条目
				var selectedRow = $('#rightsTable').treegrid('getSelected');
				if (selectedRow) {
					// 打开权限修改框，并设置修改框的标题
					$('#addOrUpdateDlg').dialog('open').dialog('setTitle', '修改-' + selectedRow.name);
					// 设置div的data-editType
					$('#addOrUpdateDlg').data('editType', 'update');
					// 如果有选中的条目，则将选中条目的值填充到form中
					$('#addOrUpdateForm').form('load', selectedRow);

				} else {
					sendMessage('提示', '请选择需要修改的权限！');
				}
			});

	// 删除权限按钮click事件
	$('#delButt').bind('click', function() {
		var selectedRow = $('#rightsTable').treegrid('getSelected');
		if (selectedRow) {
			var title = '删除-' + selectedRow.name;
			var msg = '确定删除权限' + selectedRow.name + '?<br>';
			$.messager.confirm(title, msg, function(isSure) {
				if (isSure) {
					$.ajax({
						url : "rights/delete.action",
						data : {
							"id" : selectedRow.id
						},
						success : function(result) {
							if(result.success){
								$('#rightsTable').treegrid('remove',selectedRow.id);
								sendMessage('提示', result.message);
							}else{
								sendMessage('提示', result.message);
							}
						}
					});
				}
			});
		} else {
			sendMessage('提示', '请选择需要删除的权限！');
		}
	});

	// 展开按钮click事件
	$('#expandButt').bind('click', function() {
		$('#rightsTable').treegrid('expandAll');
	});

	// 折叠按钮click事件
	$('#collapseButt').bind('click', function() {
		$('#rightsTable').treegrid('collapseAll');
	});

	// 添加框中保存按钮click事件
	$('#saveButt').bind('click', function() {
		var submitUrl;
		var successMsg;
		var failMsg;

		if ($('#addOrUpdateDlg').data('editType') == 'update') {
			submitUrl = 'rights/update.action';
			successMsg = '权限更新成功！';
			failMsg = '权限更新失败，原因如下：';
		} else {
			submitUrl = 'rights/add.action';
			successMsg = '权限添加成功！';
			failMsg = '权限添加失败，原因如下：';
		}

		$('#addOrUpdateForm').form('submit', {
			url : submitUrl,
			onSubmit : function(data) {
				return $(this).form('validate');
			},
			success : function(result) {
				result = $.parseJSON(result);
				var msg = failMsg;
				$.each(result.message, function(i, val) {
					msg += "<br>";
					msg += val;
				});

				if (result.success) {
					$('#addOrUpdateDlg').dialog('close');
					$('#addOrUpdateForm').form('clear');
					$('#rightsTable').treegrid('reload');
					sendMessage('提示', successMsg);
				} else {
					sendMessage('提示', msg);
				}
			}
		});

	});

	// 添加框中取消按钮click事件
	$('#cancelButt').bind('click', function() {
		$('#addOrUpdateDlg').dialog('close');

	});


	function sendMessage(title, msg) {
		$.messager.show({
			title : title,
			msg : msg,
			timeout : 6000,
			showType : 'slide'
		})
	}


	function initForm() {

		// 初始化添加框中input组件
		$('#pidInput').combotree({
			url : 'rights/getRightsCatalog.action',
			idFiled:'id',
		 	textFiled:'name',
		 	parentField:'pid',
		});
		$('#nameInput').validatebox({
			required : true,
		});
		$('#codeInput').validatebox({
			required : true,
		});
		$('#typeInput').combobox({
			required : true,
			url : 'rights/getRigthsType.action',
			valueField : 'typeId',
			textField : 'typeName',
			editable : false
		});
		$('#iconInput').validatebox({

		});
		$('#urlInput').validatebox({

		});
	}
	
	
});
